Contact sidebar tile

ABSTRACT

Methods, systems, and computer program products for tracking real-time communication data within a single contact tracking application for diverse communication providers and applications. A global data store is synchronized with real-time communication data, such as presence, status, unread messages, and unread notifications, from each application/provider. Real-time communication data for contacts dynamically determined to be recent contacts is retrieved from the data store, based on properties such as a most recent communication time, a communication count, and the like. Real-time communication data corresponding to contacts identified as pinned contacts for which display of real-time communication data is preferred, also may be retrieved. A user interface is generated for displaying the one or more recent and/or pinned contacts, which may vary in size based on the number of contacts identified as pinned contacts, from which a contact may be selected for real-time conversation or e-mail.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/246,362, filed Oct. 6, 2008, which issued as U.S. Pat. No. 7,730,134on Jun. 1, 2010, which is a continuation of U.S. patent application Ser.No. 10/683,800, filed Oct. 10, 2003, which issued as U.S. Pat. No.7,433,920 on Oct. 7, 2008. The foregoing patent applications areincorporated herein by reference in their entireties.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention relates to real-time communication. Morespecifically, the present invention relates to a tracking applicationfor real-time communication data from a plurality of diverse real-timecommunication providers.

2. Background and Related Art

Real-time communication or instant messaging (“IM”) is becomingincreasingly popular for commercial, leisure, and even militaryapplications. By its nature, however, particularly in the commercial andleisure settings, real-time communication is generally one of severaltasks being performed simultaneously. Accordingly, the relativeimportance of real-time communication with respect to other tasks issubject to change over time. One shortcoming of current real-timecommunication software is the inability to adjust to these changingpriorities.

Real-time communication software generally shows some information aboutvarious users, such as whether a user is online and available for areal-time conversation, and allows a user to initiate real-timecommunication with others or accept notifications to join conversationsinitiated by others. Apart from the real-time communication window,there is no way to keep track of a user's real-time contacts so that theuser is aware of the contacts' status and presence or to begin areal-time conversation. At times this creates difficulties for a userbecause like other windows, the real-time communication window and itscontact information may be covered by other applications.

Another problem is that real-time communication information tends to belimited to individual service providers. For example, contactinformation and a contact's status or presence is shown only within aparticular service provider's real-time communication window. As aresult, if a user communicates with several contacts having differentservice providers, separate real-time communication windows must be openfor each distinct service provider. Of course, needing several real-timecommunication windows to keep track of contacts, simply multiplies thedifficulties identified above.

Currently, real-time communication windows also tend to be limited toproviding only real-time communication information. Information aboutother forms of communication has been considered extraneous. Forexample, real-time communication windows have failed to integrateinformation about the number of unread e-mails a contact has sent.However, e-mail may be a fallback form of communicating with contactswhen real-time communication is unavailable. Therefore, e-mailinformation may help provide continuity in communication when contactsare not currently online. Accordingly, improved methods, systems, andcomputer program products for tracking real-time communication data aredesired.

BRIEF SUMMARY OF THE INVENTION

The present invention relates to methods, systems, and computer programproducts for tracking real-time communication data within a singlecontact tracking application. The contact tracking application can trackreal-time communication data for real-time communication that uses anyof a plurality of diverse real-time communication providers andapplications. In accordance with example embodiments, a global real-timecommunication data store is synchronized with real-time communicationdata from each of a plurality of diverse real-time communicationapplications corresponding to a plurality of diverse real-timecommunication providers. Real-time communication data corresponding toone or more contacts dynamically determined to be one or more recentcontacts is retrieved from the global real-time communication datastore. The recent contact determination is based on one or moreproperties associated with the real-time communication data. A userinterface is generated for displaying the one or more recent contacts.

The one or more properties for dynamically determining that the one ormore contacts are recent contacts may include, for example, a mostrecent communication time, a communication count, a weighted combinationof most recent communication time and communication count, and the like.Real-time communication data corresponding to one or more contactsidentified as pinned contacts for which display of the correspondingreal-time communication data is preferred, also may be retrieved. A userinterface also may be generated for displaying the one or more pinnedcontacts.

The user interface may include separated pinned contact and recentcontact portions. Accordingly, the pinned contact portion and/or recentcontact portion may vary in size based on the number of contactsidentified as pinned contacts. The user interface may be subject tobeing dynamically resized by user input. Depending on the number ofcontacts and size of the user interface, only a portion of the pinnedcontacts and recent contact may be displayed. Pinned contacts may beordered alphabetically to make them easier to find.

The real-time communication data for the pinned and recent contacts mayinclude presence, status, unread messages, and unread notifications,even when the user interface includes a plurality of contacts fromdiverse service providers. This real-time communication data may beretrieved periodically from any of the diverse real-time communicationapplications or may be received automatically without the need for anexplicit request. For example, any of the diverse real-timecommunication applications can update the global real-time communicationdata store at any time, with the updated real-time communication datathen being reflected on the user interface as soon as it is available.The user interface also may include a text entry box for searchingthrough the contacts and a link for adding a new contact. The userinterface may receive user input to select a specific contact, selectthe specific contact, and initiate a real-time conversation, e-mail,etc., with the selected contact. Previously unpinned contacts may bepinned, and previously pinned contacts may be unpinned. A separateflyout user interface may be used for displaying all contacts.

Additional features and advantages of the invention will be set forth inthe description which follows, and in part will be obvious from thedescription, or may be learned by the practice of the invention. Thefeatures and advantages of the invention may be realized and obtained bymeans of the instruments and combinations particularly pointed out inthe appended claims. These and other features of the present inventionwill become more fully apparent from the following description andappended claims, or may be learned by the practice of the invention asset forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to describe the manner in which the above-recited and otheradvantages and features of the invention can be obtained, a moreparticular description of the invention briefly described above will berendered by reference to specific embodiments thereof which areillustrated in the appended drawings. Understanding that these drawingsdepict only typical embodiments of the invention and are not thereforeto be considered as limiting its scope, the invention will be describedand explained with additional specificity and detail through the use ofthe accompanying drawings in which:

FIG. 1 shows an example architecture for a real-time communication datatracking application in accordance with the present invention;

FIG. 2 illustrates the user interface for the example trackingarchitecture shown in FIG. 1, within the context of a desktop that alsoshows other user interface elements;

FIG. 3 show an example flyout user interface in accordance with thepresent invention for managing real-time and other contacts;

FIG. 4 illustrates the example user interface from FIG. 2, populatedwith both pinned and recent contacts in accordance with the presentinvention;

FIGS. 5A-5B show example acts and steps for methods of trackingreal-time communication data in accordance with the present invention;and

FIG. 6 illustrates an example system that provides a suitable operatingenvironment for the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention extends to methods, systems, and computer programproducts for tracking real-time communication data for real-timecommunication using any of a plurality of diverse real-timecommunication providers or applications, all within a single trackingapplication. The embodiments of the present invention may comprise oneor more special purpose and/or one or more general purpose computersincluding various computer hardware, as discussed in greater detailbelow.

FIG. 1 shows an example architecture for a real-time communication datatracking application in accordance with the present invention. Acommunication network 130, such as the Internet, provides for a varietyof electronic communication between contacts. For example, communicationapplications user interfaces 110 are shown for instant messaging (“IM”)or real-time communication 112, e-mail 114, telephony 116, and other118. Each type of communication includes some form of communicationapplications data 120, including IM data 122, e-mail data 124, telephonedata 126, and other data 128. This data may include the electroniccommunication itself or other data related to the electroniccommunication. For example, IM or real-time communication data 122 mightinclude real-time contacts and presence or status information for thereal-time contact, in addition to what ever data is communicated betweencontacts (e.g., text, audio, video, binary, and the like). E-mail data124 may include e-mail contacts, received and sent e-mail messages,counts for unread messages, message date and size information,attachments, etc.

Contact information store 150 contains at least some of thecommunication applications data 120 for the various communicationapplications. Note that IM or real-time communication applications userinterface 112 and communication applications data 120 show that severalpotentially diverse applications may be used for real-timecommunication. The same is true for e-mail, telephone, and othercommunication. As described in more detail below, contacts sidebar tile400 displays real-time communication data that is stored within contactinformation store 150.

Note that contact information store 150 simplifies the operation ofcontacts sidebar tile 400. Some communication applications may choose toupdate the contact information store 150 automatically as communicationapplications data 120 changes through an interface (not shown) to thecontact information store 150. Other applications may be incapable ofautomatically updating contact information store 150 or choose not toimplement that functionality. Accordingly, contact information store 150also may retrieve data from the communication applications data 120.Contact information store 150 and contact sidebar tile represent asingle contact tracking application that tracks real-time communicationdata for a plurality of diverse real-time communication providers orapplications. In some embodiments, this single contact trackingapplication may be part of or directly supported by an operating systemwithin a computer system, such as the conventional computer describedbelow in connection with FIG. 1.

FIG. 2 illustrates the contacts sidebar tile 400 for the exampletracking architecture shown in FIG. 1, within the context of a desktop200 that also shows other user interface elements. For example, desktop200 shows word processing application 210. The contact sidebar tile 400is included as part of a side bar, with other user interface portions ortiles 220 and 230. The side bar and contact sidebar tile 400 can bedisplayed at all times in order to track real-time communication datawhile a user performs other tasks or operations.

Contact sidebar tile 400 includes a contacts header 410 and initially isempty. That is not to say that no real-time, e-mail, or other contactsare defined within communication applications data 120, but rather, asdescribed in greater detail below, that none of the defined contactsmeet the criteria for being displayed within the contact sidebar tile400. Due to its purpose and limited size, contact sidebar tile 400generally displays only a portion of all contacts. Accordingly, or now,contact sidebar tile 400 includes a link 440 to add a contact (e.g., areal-time contact, an e-mail contact, etc.) to communicationapplications data 120, a text box 450 for searching communicationapplications data 120 for an existing contact, and a search button 460to initiate the search. The link 440 to add a contact may simply invokean existing or external application to manage contacts withincommunication applications data 120.

FIG. 3 show an example flyout user interface 300 managing real-time andother contacts used to display all contacts. User interface 300 isdescribed as a flyout user interface because it is connected to andassociated with contact sidebar tile 400, but is larger, and thereforecapable of showing more detail than contact sidebar tile 400. Userinterface 300 is a heavier-weight user interface that is intended tosupport a wide range of user interaction. By comparison, contact sidebartile 400 is lightweight and allows a user to be peripherally aware ofreal-time communication data for certain contacts of particularinterest, without the space and complexity of user interface 300. Whenthe lightweight interaction of the relatively simple contact sidebartile 400 proves insufficient, the more complex features and larger sizeof user interface 300 may be invoked. For example, searching for acontact may display flyout user interface 300 with the contact that mostnearly matches the search criteria highlighted. Of course, flyout userinterface 300 may be accessed in a variety of ways, such as from aMyContacts selection that appears as an option in other user interfacemenus.

Flyout user interface 300 includes header 310 with personal informationabout the user, such as a graphic (picture, image, icon, etc.)representation 312 a of the user, the user's online name 312 b, theuser's location/presence 312 c, and status information 312 d for theuser. The “Go to My Profile” link 314 may be selected to change thispersonal information. Flyout user interface 300 also includes options toadd an online contact 321, send an instant message 323, send e-mail 325,call a contact 327, go to a “My Contacts” folder 329, perform a quickfind operation 330 for a contact entered into text box 332, and anoption to pin 334 a contact to contact sidebar tile 400, as described ingreater detail below with respect to FIG. 4.

Flyout user interface 300 organizes contact by status, such as online,offline, away, busy, unknown, etc. Online group 340 includes Hank, Cees,Swimmer Dude, Anthony, Kathy, Roman, Alley, Britney, and Peyman. Notethat for each contact there is a corresponding graphic/icon 342 a, adisplay name 342 b, and location/presence information 342 c.(Location/presence information 342 c is often implemented as a custom oruser defined status.) For example, Nicholas (the user) is at aconference in LA, Hank is in his office, Swimmer Dude is on the phone,and Kathy is in a meeting. Offline group 350 includes Ahsan, Kevin,Mark, and Sean. Ahsan is OOF (out of office) and therefore may besomewhat more difficult to reach for a time.

FIG. 4 illustrates the example contacts sidebar tile 400 from FIG. 2,populated with both pinned and recent contacts as described below. Asbefore, contacts sidebar tile 400 includes a header 410 to identify thecontents of the user interface, a link 440 to add a contact, a text box450 for searching contacts, and a button 460 to initiate a search.Contacts sidebar tile 400 also includes a pinned contact section 420 anda recent contact section 430. Pinned contacts are contacts that the userhas explicitly indicated should appear on contact sidebar tile 400. Forexample, a right-click, or the option to pin 334 a contact as shown inFIG. 3, or a drag/drop operation may be used to add a contact to thepinned contact section 420.

When a contact from communication applications data 120 is pinned, thecontact is stored in contact information store 150 with anycorresponding real-time communication data. Alternatively, contactinformation store 150 may include all contact from communicationapplication data 120 and pinning simply adds a property or some otherindication that identifies a contact as a pinned contact. In FIG. 4,Ahsan and Sean are pinned contacts. Each pinned contact includes certainreal-time communication data, including a graphic/icon 422 a, onlinename 422 b, and an unread e-mail message/unread real-time communicationnotifications count 422 c. For example, Sean has sent three e-mailmessages to the user which have not been read and has been invited bythe user to join four real-time conversations, with none of theinvitations/notifications having been read by the user. Although notshown, custom location/presence (custom status) information also may bedisplayed here, such as if the contact currently is playing a game.Typically, pinned contact will be ordered alphabetically, but also maybe ordered in the same manner described below for the recent contacts.

Recent contact section 430 shows contacts with whom the user has hadrecent real-time conversations. Whether a contact is a recent contactmay be based on a variety of factors, including the time of the mostrecent real-time conversation, the number of real-time conversations,and the like. Weighting these factors may help improve the usefulness ofthe contact sidebar tile. For example, even though a large number ofreal-time conversations have occurred with a particular contact, ifthose conversations are relatively old, compared to other conversationswith other contacts, preference should probably be given to the morerecent conversations. However, when deciding which recent contacts todrop in favor of more recent contacts, frequency may be an importantconsideration. In some implementations, the determination may be basedstrictly on most recent real-time conversation.

Recent contact section 430 includes Roman, Peyman, Cees, Kevin, Mark,and Family. Family is a group of real-time contacts and the real-timecommunication data shown for family is an aggregate of the real-timecommunication data for each user. The number in parenthesis next to thegroup name indicates the number of real-time contacts in the group whoare online. For the family group, one real-time contact is online.Similar to pinned contacts, real-time contacts show a graphic/icon 432 a(also known as a user tile), online name 432 b, and an unread e-mailmessage/unread real-time communication notifications count 432 c.Hovering over a contact may display additional information, such as adisplay name, status, custom status, real-time communication address,real-time communication provider, e-mail address, etc. Of course, colorand/or user tile display may be used to indicate status as well.

Although not shown in FIG. 4, the contacts sidebar tile 400 may containany number of sections. For example, a section could be defined forcontacts that are near, or ones that like to play games, or for certainco-workers. The criteria for each of the various sections may usepredefined properties that are part of each contact or may beuser-defined. Likewise, determining which contacts meet the criteria fora particular section may be based on predefined rules or rules that auser defines, such as through a script, a simple programming language,or for sophisticated users, a relatively complex programming language.Accordingly, an arbitrary number of sections may be present in contactssidebar tile 400, depending on the needs and/or desires of a particularuser.

Various forms of communication may be initiated from the contact sidebartile. Right-clicking on a contact brings up a menu of operations thatmay be performed, such as begin a real-time conversation or begin ane-mail message. A user also may be presented with options to view thedetails page for the contact or to remove the contact from the contactsidebar tile.

The present invention also may be described in terms of methodscomprising functional steps and/or non-functional acts. The following isa description of acts and steps that may be performed in practicing thepresent invention. Usually, functional steps describe the invention interms of results that are accomplished, whereas non-functional actsdescribe more specific actions for achieving a particular result.Although the functional steps and non-functional acts may be describedor claimed in a particular order, the present invention is notnecessarily limited to any particular ordering or combination of actsand/or steps.

FIGS. 5A-5B show example acts and steps for methods of trackingreal-time communication data in accordance with the present invention.Note that although the description below may appear to be sequential,example embodiments of the invention may perform the various processingacts and steps continuously, or in an on-going manner, so that thecontact side bar tile 400 is always up-to-date. That is, currentreal-time communication data flows from communication applications 120into the contact information store 150 and then to the contact side bartile 400 for display. In this way, for example, the displayed real-timecommunication data, such as whether the contact is online or offline,the number of unread e-mail messages from the contact, etc., remainsaccurate over time.

A step for synchronizing (510) a global real-time communication datastore with real-time communication data from each of a plurality ofdiverse real-time communication applications corresponding to aplurality of diverse real-time communication providers may include anact of receiving (512) the real-time communication data from each of theplurality of diverse real-time communication applications. A step forretrieving (520), from the global real-time communication data store,real-time communication data corresponding to one or more contactsidentified as pinned contacts for which display of the correspondingreal-time communication data is preferred may include an act of querying(522) the global real-time communication data store for the real-timecommunication data.

A step for retrieving (530), from the global real-time communicationdata store, real-time communication data corresponding to one or morecontacts which are dynamically determined at the global real-timecommunication data store to be one or more recent contacts, based on oneor more properties associated with the real-time communication data, mayinclude an act of querying (532) the global real-time communication datastore for the real-time communication data. A step for generating (540)a user interface for displaying the one or more pinned contacts mayinclude an act of displaying (542) the one or more pinned contacts in auser interface generate by a contact tracking application. A step forgenerating (550) a user interface for displaying the one or more recentcontacts may include an act of displaying (552) the one or more recentcontacts in a user interface generated by the contact trackingapplication.

A step for generating (560) a text entry box on the user interface forsearching for a contact may include an act of displaying (562) the textentry box. A step for generating (570) a link on the user interface foradding a new contact may include an act of displaying (572) the link. Astep for pinning (not shown) a previous unpinned contact may include anact of receiving (not shown) an indication at the global real-timecommunication data store that a particular contact is a pinned contactand an act of updating (not shown) the use interface to include theparticular contact as a pinned contact. A step for unpinning (not shown)a previously pinned contact may include an act of receiving (not shown)an indication at the global real-time communication data store that theparticular contact is no longer a pinned contact and an act of updating(not shown) the user interface to remove the particular contact as apinned contact. A step for generating (not shown) a separate flyout userinterface for displaying all contacts may include an act of receiving(not shown) user input to display all contacts and an act of displaying(not shown) a separate flyout user interface for displaying all contact.

The method also may include acts of receiving (582) user input, and thenbased on that user input, searching (584) for a contact, selecting (586)a contact, or opening (588) a new contact dialog. A step for initiating(590) an instant message or real-time conversation may include an act ofsending (592) an instant message or real-time conversation request to aselected contact. Similarly, a step for initiating (595) an e-mailmessage may include an act of opening (594) a new e-mail message for aselected contact.

Embodiments within the scope of the present invention also includecomputer-readable media for carrying or having computer-executableinstructions or data structures stored thereon. Such computer-readablemedia can be any available media that can be accessed by a generalpurpose or special purpose computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disc storage, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to carryor store desired program code means in the form of computer-executableinstructions or data structures and which can be accessed by a generalpurpose or special purpose computer. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as acomputer-readable medium. Thus, any such connection is properly termed acomputer-readable medium. Combinations of the above should also beincluded within the scope of computer-readable media.Computer-executable instructions comprise, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions.

FIG. 6 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. Although not required, the invention willbe described in the general context of computer-executable instructions,such as program modules, being executed by computers in networkenvironments. Generally, program modules include routines, programs,objects, components, data structures, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Those skilled in the art will appreciate that the invention may bepracticed in network computing environments with many types of computersystem configurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by local and remote processingdevices that are linked (either by hardwired links, wireless links, orby a combination of hardwired or wireless links) through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

With reference to FIG. 6, an exemplary system for implementing theinvention includes a general purpose computing device in the form of aconventional computer 620, including a processing unit 621, a systemmemory 622, and a system bus 623 that couples various system componentsincluding the system memory 622 to the processing unit 621. The systembus 623 may be any of several types of bus structures including a memorybus or memory controller, a peripheral bus, and a local bus using any ofa variety of bus architectures. The system memory includes read onlymemory (ROM) 624 and random access memory (RAM) 625. A basicinput/output system (BIOS) 626, containing the basic routines that helptransfer information between elements within the computer 620, such asduring start-up, may be stored in ROM 624.

The computer 620 may also include a magnetic hard disk drive 627 forreading from and writing to a magnetic hard disk 639, a magnetic diskdrive 628 for reading from or writing to a removable magnetic disk 629,and an optical disc drive 630 for reading from or writing to removableoptical disc 631 such as a CD-ROM or other optical media. The magnetichard disk drive 627, magnetic disk drive 628, and optical disc drive 630are connected to the system bus 623 by a hard disk drive interface 632,a magnetic disk drive-interface 633, and an optical drive interface 634,respectively. The drives and their associated computer-readable mediaprovide nonvolatile storage of computer-executable instructions, datastructures, program modules and other data for the computer 620.Although the exemplary environment described herein employs a magnetichard disk 639, a removable magnetic disk 629 and a removable opticaldisc 631, other types of computer readable media for storing data can beused, including magnetic cassettes, flash memory cards, digitalversatile discs, Bernoulli cartridges, RAMs, ROMs, and the like.

Program code means comprising one or more program modules may be storedon the magnetic hard disk 639, removable magnetic disk 629, removableoptical disc 631, ROM 624 or RAM 625, including an operating system 635,one or more application programs 636, other program modules 637, andprogram data 638. A user may enter commands and information into thecomputer 620 through keyboard 640, pointing device 642, or other inputdevices (not shown), such as a microphone, joy stick, game pad,satellite dish, scanner, or the like. These and other input devices areoften connected to the processing unit 621 through a serial portinterface 646 coupled to system bus 623. Alternatively, the inputdevices may be connected by other interfaces, such as a parallel port, agame port or a universal serial bus (USB). A monitor 647 or anotherdisplay device is also connected to system bus 623 via an interface,such as video adapter 648. In addition to the monitor, personalcomputers typically include other peripheral output devices (not shown),such as speakers and printers.

The computer 620 may operate in a networked environment using logicalconnections to one or more remote computers, such as remote computers649 a and 649 b. Remote computers 649 a and 649 b may each be anotherpersonal computer, a server, a router, a network PC, a peer device orother common network node, and typically include many or all of theelements described above relative to the computer 620, although onlymemory storage devices 650 a and 650 b and their associated applicationprograms 636 a and 636 b have been illustrated in FIG. 6. The logicalconnections depicted in FIG. 6 include a local area network (LAN) 651and a wide area network (WAN) 652 that are presented here by way ofexample and not limitation. Such networking environments are commonplacein office-wide or enterprise-wide computer networks, intranets and theInternet.

When used in a LAN networking environment, the computer 620 is connectedto the local network 651 through a network interface or adapter 653.When used in a WAN networking environment, the computer 620 may includea modem 654, a wireless link, or other means for establishingcommunications over the wide area network 652, such as the Internet. Themodem 654, which may be internal or external, is connected to the systembus 623 via the serial port interface 646. In a networked environment,program modules depicted relative to the computer 620, or portionsthereof, may be stored in the remote memory storage device. It will beappreciated that the network connections shown are exemplary and othermeans of establishing communications over wide area network 652 may beused.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

1. A method of displaying real-time communication data tracked from aplurality of diverse real-time communication providers and applications,the method comprising acts of: receiving real-time communication dataand e-mail communication data from a plurality of diverse communicationproviders and that correspond to one or more contacts; displaying acontact listing on a user interface that lists the one or more contacts;displaying a number next to a particular contact of the one or morecontacts, the number identifying a quantity of unread real-timecommunication notifications that have been received from the particularcontact; and providing a user input section which, upon receivingcorresponding user input, will initiate a real-time communication withthe particular contact.
 2. The method recited in claim 1, wherein themethod further includes displaying a second number next to theparticular contact and wherein the second number identifies a quantityof unread email communication notifications that have been received fromthe particular contact.
 3. The method recited in claim 1, wherein anordering of the listed one or more contacts is based on a communicationcount associated with each of the one or more listed contacts andwherein the communication count for each of the one or more listedcontacts comprises a total number of real-time communicationnotifications received from each of the one or more listed contacts,respectively.
 4. The method of claim 1, wherein an ordering of thelisted one or more contacts is based on a combination of both a mostrecent communication time in which a communication was received fromeach of the one or more contacts, respectively, as well as acommunication count for each of the one or more listed contacts whichcomprises a total number of communications received from each of the oneor more listed contacts, respectively.
 5. The method recited in claim 1,wherein the user interface comprises separate pinned contact and recentcontact portions, and wherein the contact listing is listed in thepinned contact portion of the user interface.
 6. The method recited inclaim 5, wherein a first list of contacts included in the pinned contactportion of the user interface is ordered differently than an ordering ofa second listing of contacts included in the recent contact portion ofthe user interface.
 7. The method recited in claim 6, wherein the firstlist of contacts is ordered alphabetically.
 8. The method recited inclaim 1, wherein the method further includes displaying, within the userinterface, a selectable object for initiating a search of one or morecontact.
 9. The method recited in claim 1, wherein the method furtherincludes displaying, within the ricer interface, a selectable object forinitiating the entry of contact to add to the list of one or morecontacts.
 10. A method of displaying real-time communication datatracked from a plurality of diverse real-time communication providersand applications, the method comprising acts of: receiving real-timecommunication data and e-mail communication data from a plurality ofdiverse communication providers and that correspond to one or morecontacts; displaying a contact listing on a user interface that liststhe one or more contacts; displaying a number next to a particularcontact of the one or more contacts, the number identifying a quantityof unread email communication notifications that have been received fromthe particular contact; displaying a second number next to a secondparticular contact of the one or more contacts, the second numberidentifying a quantity of unread real-time communication notificationsthat have been received from the second particular contact; andproviding a user input section which, upon receiving corresponding userinput, will initiate an email communication with the particular contact.11. The method recited in claim 10, wherein an ordering of the listedone or more contacts is based on a communication count associated witheach of the one or more listed contacts and wherein the communicationcount for each of the one or more listed contacts comprises a totalnumber of email communication notifications received from each of theone or more listed contacts, respectively.
 12. The method of claim 10,wherein an ordering of the listed one or more contacts is based on acombination of both a most recent communication time in which acommunication was received from each of the one or more contacts,respectively, as well as a communication count for each of the one ormore listed contacts which comprises a total number of communicationsreceived from each of the one or more listed contacts, respectively. 13.The method recited in claim 12, wherein the most recent communicationtime and the communication count is based on email communications. 14.The method recited in claim 10, wherein the user interface comprisesseparate pinned contact and recent contact portions, and wherein thecontact listing is listed in the pinned contact portion of the userinterface.
 15. The method recited in claim 14, wherein a first list ofcontacts included in the pinned contact portion of the user interface isordered differently than an ordering of a second listing of contactsincluded in the recent contact portion of the user interface.
 16. Amethod of displaying real-time communication data tracked from aplurality of diverse real-time communication providers and applications,the method comprising acts of: receiving real-time communication dataand e-mail communication data from diverse communication providerscorresponding to one or more contacts; displaying a first contactlisting on a user interface that lists the one or more contacts thathave been determined to be recent contacts, determining the one or morecontacts to be recent contacts comprising at least determining a mostrecent communication time; displaying a second contact listing on theuser interface comprising one or more pinned contacts, each pinnedcontact having been designated as a pinned contact by receipt of acorresponding user input; distinguishing between the first and thesecond contact listings; displaying a first number next to an emailcontact of the one or more contacts included in either of the first orthe second contact listing, the first number identifying a quantity ofunread email communication notifications that have been received fromthe email contact; and displaying a second number next to a real-timecommunication contact of the one or more contacts included in either ofthe first or second contact listing, the second number identifying aquantity of unread real-time communication notifications that have beenreceived from the real-time communication contact.
 17. The methodrecited in claim 16, wherein the email contact and the real-timecommunication contact are a same contact and such that the same contactis displayed with the first and the second numbers next to the samecontact.